package com.ruoyi.event.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.annotation.UserDrugInfo;
import com.ruoyi.common.convert.ExcelDictConvert;
import lombok.Data;

import java.util.Date;


/**
 * 人员类型转换视图对象 event_change_type
 *
 * @author xiaohao
 * @date 2023-02-10
 */
@Data
@ExcelIgnoreUnannotated
public class EventChangeTypeVo implements EventInfo {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ExcelProperty(value = "主键")
    private Long typeId;

    /**
     * 用户id
     */
    @ExcelProperty(value = "用户id")
    private Long userId;

    @UserDrugInfo(onlyName = false)
    public Object getUserInfo() {
        return userId;
    }

    /**
     * 转换类型
     */
    @ExcelProperty(value = "转换类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "ryzhlx")
    private String changeType;

    /**
     * 决定机关
     */
    @ExcelProperty(value = "决定机关")
    private String jdjg;

    /**
     * 决定时间
     */
    @ExcelProperty(value = "决定时间")
    private Date jdsj;

    /**
     * 进（入）所时间
     */
    @ExcelProperty(value = "进", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "入=")
    private Date rssj;

    /**
     * 出所时间
     */
    @ExcelProperty(value = "出所时间")
    private Date cssj;

    /**
     * 戒毒场所
     */
    @ExcelProperty(value = "戒毒场所")
    private String jdcs;

    /**
     * 强戒原因
     */
    @ExcelProperty(value = "强戒原因")
    private String qjyy;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remark;

    /**
     * 入所原因
     */
    @ExcelProperty(value = "入所原因")
    private String rsyy;

    /**
     * 羁押地点
     */
    @ExcelProperty(value = "羁押地点")
    private String jsdd;

    /**
     * 入狱时间
     */
    @ExcelProperty(value = "入狱时间")
    private Date rysj;

    /**
     * 判刑地点
     */
    @ExcelProperty(value = "判刑地点")
    private String pxdd;

    /**
     * 出狱时间
     */
    @ExcelProperty(value = "出狱时间")
    private Date cysj;

    /**
     * 服刑地区
     */
    @ExcelProperty(value = "服刑地区")
    private String fxdq;

    /**
     * 监狱名称
     */
    @ExcelProperty(value = "监狱名称")
    private String jymc;

    /**
     * 入狱原因
     */
    @ExcelProperty(value = "入狱原因")
    private String ryyy;

    /**
     * 执行时间
     */
    @ExcelProperty(value = "执行时间")
    private Date zxsj;

    /**
     * 治疗时间
     */
    @ExcelProperty(value = "治疗时间")
    private Date zlsj;

    /**
     * 治疗机构
     */
    @ExcelProperty(value = "治疗机构")
    private String zljg;

    /**
     * 离开时间
     */
    @ExcelProperty(value = "离开时间")
    private Date lksj;

    /**
     * 死亡时间
     */
    @ExcelProperty(value = "死亡时间")
    private Date swsj;

    /**
     * 死亡原因
     */
    @ExcelProperty(value = "死亡原因")
    private String swyy;

    /**
     * 死亡地点
     */
    @ExcelProperty(value = "死亡地点")
    private String swdd;

    /**
     * 结束时间
     */
    @ExcelProperty(value = "结束时间")
    private Date jssj;

    /**
     * 原因详情
     */
    @ExcelProperty(value = "原因详情")
    private String yyxq;

    /**
     * 拘留地点
     */
    @ExcelProperty(value = "拘留地点")
    private String jldd;

    /**
     * 决定书上传
     */
    @ExcelProperty(value = "决定书上传")
    private String jdsFiles;

    /**
     * 精神病院
     */
    @ExcelProperty(value = "精神病院")
    private String jsby;

    /**
     * 入院日期
     */
    @ExcelProperty(value = "入院日期")
    private Date ryrq;

    /**
     * 出院日期
     */
    @ExcelProperty(value = "出院日期")
    private Date cyrq;

    /**
     * 撤销时间
     */
    @ExcelProperty(value = "撤销时间")
    private Date cxsj;

    /**
     * 文书号
     */
    @ExcelProperty(value = "文书号")
    private String wsh;

    private Date createTime;
    private Date updateTime;


    @Override
    public Long getId() {
        return typeId;
    }

    @Override
    public String getText() {
        return changeType;
    }

    @Override
    @JsonFormat(pattern = "yyyy-MM-dd")
    public Date getTime() {
        return createTime;
    }
}
